Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Refactored Image Object
Description
In the case of the original image objects, we initialized them by passing both base64 and URL as constructor arguments, and returned their values through the getUrl and getBase64 methods.
However, this approach made it challenging to clearly indicate small differences between various providers leading to scalability issues when adding new types beyond base64 and URL.
To solve this, we have separated the original Image object into the Image and ImageType interfaces. Each module defines an enum that implements the ImageType interface (e.g., OpenAiImageType, etc.), allowing us to distinguish between the image's provider and format. This enum can be flexibly applied to situations like the Request's Response Format.
Moreover, through the Image interface, all image objects can be uniformly treated, making the design easily adaptable even when new response formats or providers are added.
Please kindly review the proposed structure change to resolve this issue.
I am requesting your review as you are the most recent committer to this file.
@markpollack
Thank you.